﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Transactions;
using negocios;
using objetos;
using relatorios;
using publico;

namespace softsales.pagina.ordem_servico
{
    public partial class ordem_servico_visualizar : System.Web.UI.Page
    {
        // ORDEM_SERVICO
        OBJ_TB_ORDEM_SERVICO o_tb_ordem_servico = new OBJ_TB_ORDEM_SERVICO();
        BLL_TB_ORDEM_SERVICO b_tb_ordem_servico = new BLL_TB_ORDEM_SERVICO();

        // ORDEM_SERVICO ITEM
        BLL_TB_ORDEM_SERVICO_ITEM b_tb_ordem_servico_item = new BLL_TB_ORDEM_SERVICO_ITEM();
        OBJ_TB_ORDEM_SERVICO_ITEM o_tb_ordem_servico_item = new OBJ_TB_ORDEM_SERVICO_ITEM();

        // ORDEM_SERVICO USUARIO
        OBJ_TB_ORDEM_SERVICO_USUARIO o_tb_ordem_servico_usuario = new OBJ_TB_ORDEM_SERVICO_USUARIO();
        BLL_TB_ORDEM_SERVICO_USUARIO b_tb_ordem_servico_usuario = new BLL_TB_ORDEM_SERVICO_USUARIO();


        // CADASTRO
        OBJ_TB_CADASTRO o_tb_cadastro = new OBJ_TB_CADASTRO();
        BLL_TB_CADASTRO b_tb_cadastro = new BLL_TB_CADASTRO();

        // ENDERECO CADASTRO
        OBJ_TB_ENDERECO_CADASTRO o_tb_endereco_cadastro = new OBJ_TB_ENDERECO_CADASTRO();
        BLL_TB_ENDERECO_CADASTRO b_tb_endereco_cadastro = new BLL_TB_ENDERECO_CADASTRO();

        // FORMA PAGAMENTO
        BLL_TB_FORMA_PAGAMENTO b_tb_forma_pagamento = new BLL_TB_FORMA_PAGAMENTO();

        // CONDICAO PAGAMENTO
        BLL_TB_CONDICAO_PAGAMENTO b_tb_condicao_pagamento = new BLL_TB_CONDICAO_PAGAMENTO();

        // EMPRESA
        BLL_TB_EMPRESA b_tb_empresa = new BLL_TB_EMPRESA();

        OBJ_TB_TIPO_ENDERECO o_tb_tipo_endereco = new OBJ_TB_TIPO_ENDERECO();
        BLL_TB_TIPO_ENDERECO b_tb_tipo_endereco = new BLL_TB_TIPO_ENDERECO();

        BLL_TB_TIPO_LOGRADOURO b_tb_tipo_logradouro = new BLL_TB_TIPO_LOGRADOURO();

        BLL_TB_PAISES b_tb_paises = new BLL_TB_PAISES();
        OBJ_TB_PAISES o_tb_paises = new OBJ_TB_PAISES();

        BLL_TB_CIDADE b_tb_cidade = new BLL_TB_CIDADE();
        OBJ_TB_CIDADE o_tb_cidade = new OBJ_TB_CIDADE();

        BLL_TB_UF b_tb_uf = new BLL_TB_UF();
        OBJ_TB_UF o_tb_uf = new OBJ_TB_UF();

        // VEICULO
        BLL_TB_VEICULO b_tb_veiculo = new BLL_TB_VEICULO();

        // ORDEM_SERVICO
        BLL_TB_TIPO_SITUACAO_ORDEM_SERVICO b_tb_situacao_ordem_servico = new BLL_TB_TIPO_SITUACAO_ORDEM_SERVICO();

        // UNIDADE MEDIDA
        BLL_TB_UNIDADE_MEDIDA b_tb_unidade_medida = new BLL_TB_UNIDADE_MEDIDA();

        // PRODUTO
        OBJ_TB_PRODUTO o_tb_produto = new OBJ_TB_PRODUTO();
        BLL_TB_PRODUTO b_tb_produto = new BLL_TB_PRODUTO();


        // TIPO ORDEM SERVICO
        BLL_TB_TIPO_ORDEM_SERVICO b_tb_tipo_ordem_servico = new BLL_TB_TIPO_ORDEM_SERVICO();
        OBJ_TB_TIPO_ORDEM_SERVICO o_tb_tipo_ordem_servico = new OBJ_TB_TIPO_ORDEM_SERVICO();



        // LOG ERRO
        BLL_TB_LOG_ERRO b_tb_log_erro = new BLL_TB_LOG_ERRO();
   

        private string operacao { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (PUB_SESSAO.Logado())
            {


                if (!IsPostBack)
                {

                    if (Request["id"] != null)
                    {
                        HF_ID_ORDEM_SERVICO.Value = Request["id"].ToString();

                        Editar(Request["id"].ToString());

                        LBL_TITULO_PAGINA.Text = "Ordem de Serviço";
                    }
                }


            }
        }


        private void Editar(String id)
        {
            try
            {
                OBJ_TB_EMPRESA o_tb_empresa = new OBJ_TB_EMPRESA();

                int id_ordem_servico = Convert.ToInt32(id);

                o_tb_ordem_servico = b_tb_ordem_servico.SelecionarObjetoPorId(id_ordem_servico);

                if (o_tb_ordem_servico != null)
                    o_tb_cadastro = b_tb_cadastro.SelecionarObjetoPorId(o_tb_ordem_servico.id_cadastro);

                if (o_tb_cadastro != null)
                    o_tb_endereco_cadastro = b_tb_endereco_cadastro.SelecionarObjetoPorIdCadastro(o_tb_cadastro.id);

                if (o_tb_endereco_cadastro != null)
                    o_tb_cidade = b_tb_cidade.SelecionarObjetoPorId(o_tb_endereco_cadastro.id_cidade);

                if (o_tb_empresa != null)
                    o_tb_empresa = b_tb_empresa.SelecionarObjetoPorId(o_tb_ordem_servico.id_empresa);
                
                o_tb_tipo_ordem_servico = b_tb_tipo_ordem_servico.SelecionarObjetoPorId(o_tb_ordem_servico.id_tipo_ordem_servico);

                o_tb_paises = b_tb_paises.SelecionarObjetoPorId(o_tb_endereco_cadastro.id_pais);

                LBL_PAIS.Text = o_tb_paises.descricao.ToString();
                LBL_NUM_ORDEM_SERVICO.Text = o_tb_ordem_servico.id.ToString();
                LBL_NOME_EMPRESA.Text = o_tb_empresa.nome.ToString();
                LBL_CNPJ_EMPRESA.Text = o_tb_empresa.cnpj.ToString();
                LBL_ID_CLI_FOR.Text = o_tb_ordem_servico.id_cadastro.ToString();
                LBL_NOME_CLI_FOR.Text = o_tb_cadastro.nome.ToString();
                LBL_CNPJ_CPF.Text = o_tb_cadastro.cnpj_cpf.ToString();

                LBL_DESC_TIPO_ORDEM_SERVICO.Text = o_tb_tipo_ordem_servico.desc_tipo_ordem_servico.ToString();

                LBL_VEICULO_PLACA.Text = o_tb_ordem_servico.veiculo_placa.ToString();
                LBL_VEICULO_KM.Text = o_tb_ordem_servico.veiculo_km.ToString();

                LBL_ENDERECO.Text = o_tb_endereco_cadastro.endereco.ToString();
                LBL_NUMERO.Text = o_tb_endereco_cadastro.numero.ToString();
                LBL_BAIRRO.Text = o_tb_endereco_cadastro.bairro.ToString();
                LBL_TELEFONE.Text = o_tb_endereco_cadastro.telefone.ToString();
                LBL_CELULAR.Text = o_tb_endereco_cadastro.celular.ToString();
                LBL_CEP.Text = o_tb_endereco_cadastro.cep.ToString();
                LBL_COMPLEMENTO.Text = o_tb_endereco_cadastro.complemento.ToString();
                LBL_CIDADE.Text = o_tb_cidade.cidade.ToString();
                LBL_UF.Text = o_tb_cidade.descricao_uf.ToString();

  
                LBL_DESCRICAO_SERVICO.Text = o_tb_ordem_servico.desc_servico.ToString();

                if (o_tb_endereco_cadastro.sit_principal)
                {
                    LBL_SIT_PRINCIPAL.Text = "SIM";
                }
                else
                {
                    LBL_SIT_PRINCIPAL.Text = "NÃO";
                }



                // TOTAIS
                LBL_VALOR_TOTAL_DESCONTO.Text = PUB_FUNCOES.FormataNumerico(o_tb_ordem_servico.valor_total_desconto.ToString());
                LBL_VALOR_TOTAL_ORDEM_SERVICO.Text = PUB_FUNCOES.FormataNumerico(o_tb_ordem_servico.valor_total_ordem_servico.ToString());
                LBL_VALOR_TOTAL_OUTRO.Text = PUB_FUNCOES.FormataNumerico(o_tb_ordem_servico.valor_total_outro.ToString());
                LBL_VALOR_TOTAL_PRODUTO.Text = PUB_FUNCOES.FormataNumerico(o_tb_ordem_servico.valor_total_produto.ToString());
                LBL_VALOR_TOTAL_SERVICO.Text = PUB_FUNCOES.FormataNumerico(o_tb_ordem_servico.valor_total_servico.ToString());
                           
                LBL_DESC_CONDICAO_PAGAMENTO.Text = b_tb_condicao_pagamento.SelecionarObjetoPorId(Convert.ToInt32(o_tb_ordem_servico.id_condicao_pagamento.ToString())).desc_condicao_pagamento.ToString();
                LBL_DESC_FORMA_PAGAMENTO.Text = b_tb_forma_pagamento.SelecionarObjetoPorId(Convert.ToInt32(o_tb_ordem_servico.id_forma_pagamento.ToString())).desc_forma_pagamento.ToString();
                LBL_DESC_SITUACAO_ORDEM_SERVICO.Text = b_tb_situacao_ordem_servico.SelecionarObjetoPorId(Convert.ToInt32(o_tb_ordem_servico.id_situacao_ordem_servico.ToString())).desc_tipo_sit_ordem_servico.ToString();
                LBL_DT_APROVACAO.Text = PUB_FUNCOES.FormataDataBR(o_tb_ordem_servico.dt_aprovacao.ToString());
                LBL_DT_EMISSAO.Text = PUB_FUNCOES.FormataDataBR(o_tb_ordem_servico.dt_emissao.ToString());
                LBL_DT_ENTREGA.Text = PUB_FUNCOES.FormataDataBR(o_tb_ordem_servico.dt_entrega.ToString());
                LBL_DT_ENTRADA.Text = PUB_FUNCOES.FormataDataBR(o_tb_ordem_servico.dt_entrada.ToString());
                LBL_DT_GARANTIA.Text = PUB_FUNCOES.FormataDataBR(o_tb_ordem_servico.dt_garantia.ToString());
                LBL_DT_FECHAMENTO.Text = PUB_FUNCOES.FormataDataBR(o_tb_ordem_servico.dt_fechamento.ToString());

                           
                PreencheOrdemServicoItem(o_tb_ordem_servico.id);
            }
            catch (Exception)
            {

                throw;
            }





        }




        protected void IMG_BTN_EDITAR_Click(object sender, ImageClickEventArgs e)
        {

        }


        private void PreencheOrdemServicoItem(int id_ordem_servico)
        {

            GRV_TB_ORDEM_SERVICO_ITEM.DataSource = b_tb_ordem_servico_item.Selecionar(string.Format("tb_ordem_servico_item.id_ordem_servico = {0}", id_ordem_servico), "id");
            GRV_TB_ORDEM_SERVICO_ITEM.DataBind();


        }

        protected void GRV_TB_ORDEM_SERVICO_ITEM_Sorting(object sender, GridViewSortEventArgs e)
        {

        }

        protected void GRV_TB_ORDEM_SERVICO_ITEM_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {

        }

        protected void IMG_BTN_PRIMEIRO_Click(object sender, ImageClickEventArgs e)
        {

        }

        protected void IMG_BTN_PROXIMO_Click(object sender, ImageClickEventArgs e)
        {

        }

        protected void IMG_BTN_ANTERIOR_Click(object sender, ImageClickEventArgs e)
        {

        }

        protected void IMG_BTN_ULTIMO_Click(object sender, ImageClickEventArgs e)
        {

        }



        protected void IMG_BTN_ABRIR_MODAL_CLI_FOR_Click(object sender, ImageClickEventArgs e)
        {

        }

        protected void BTN_CANCELAR_Click(object sender, EventArgs e)
        {
            Response.Redirect("Default.aspx", false);
        }

        protected void IMG_BTN_IMPRIMIR_Click(object sender, ImageClickEventArgs e)
        {
            try
            {

                REL_TB_ORDEM_SERVICO r_tb_ordem_servico = new REL_TB_ORDEM_SERVICO();
                if (HF_ID_ORDEM_SERVICO.Value != string.Empty)
                    r_tb_ordem_servico.GerarOrdemServico(Convert.ToInt32(HF_ID_ORDEM_SERVICO.Value));
            }
            catch (Exception)
            {

                throw;
            }


        }

        protected void IMG_BTN_VOLTAR_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("Default.aspx", false);
        }



    }
}